package java_0206;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 返回杨辉三角的某一行
 */
public class YangHui2 {
    public List<Integer> getRow(int rowIndex) {
        List<List<Integer>> ret=new ArrayList<>();
        List<Integer> first= Arrays.asList(1);
        //Arrays.asList是一个可变参数列表
        //（）中放可变参数，里面有几个元素就放几个元素
        ret.add(first);
        if(rowIndex==0){
            return first;
        }
        List<Integer> second=Arrays.asList(1,1);
        ret.add(second);
        if(rowIndex==1){
            return second;
        }
        //行数>2
        for (int i = 2; i <= rowIndex; i++) {
            List<Integer> prev=ret.get(i-1);//取i-1行元素，索引为i-1-1
            List<Integer> cur=new ArrayList<>();//当前行
            cur.add(1);//每行第一列都是1
            //2到i-1列
            for (int j = 1; j <i ; j++) {//不取等，最后一列也都是1，手动添加
                int val=prev.get(j-1)+prev.get(j);
                cur.add(val);
            }
            cur.add(1);//每行最后一个元素也是1
            ret.add(cur);//每行循环完加入二维数组ret中
            if(rowIndex==i){
                return cur;
            }
        }
        return null;
    }

}
